package com.liuxvru.project.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;

/**
 * 工单表
 *
 * @TableName pro_ticket
 */
@TableName(value = "pro_ticket")
@Data
public class Ticket implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 工单ID
     */
    @TableId(value = "ticket_id", type = IdType.AUTO)
    private Long ticketId;
    /**
     * 项目ID
     */
    @TableField(value = "product_id")
    private Long productId;
    /**
     * 工单类型
     */
    @TableField(value = "type")
    private String type;
    /**
     * 工单标题，描述工单的核心内容
     */
    @TableField(value = "title")
    private String title;
    /**
     * 指派人ID，表示当前负责处理工单的用户
     */
    @TableField(value = "assignee")
    private String assignee;
    /**
     * 提交人ID，标识提交工单的用户
     */
    @TableField(value = "submitter_id")
    private String submitterId;
    /**
     * 工单状态
     */
    @TableField(value = "status")
    private String status;
    /**
     * 完成时间，记录工单完成的实际时间
     */
    @TableField(value = "completed_at")
    private Date completedAt;
    /**
     * 完成者ID，标识完成工单的用户
     */
    @TableField(value = "completed_by")
    private Long completedBy;
    /**
     * 工单描述，记录工单的详细说明
     */
    @TableField(value = "description")
    private String description;
    /**
     * 公司ID，标识提交该工单的公司
     */
    @TableField(value = "company_id")
    private Long companyId;
    /**
     * 预计开始时间，用于计划工单的开始处理时间
     */
    @TableField(value = "estimated_begin")
    private Date estimatedBegin;
    /**
     * 预计结束时间，用于计划工单的完成时间
     */
    @TableField(value = "estimated_end")
    private Date estimatedEnd;
    /**
     * 优先级，标识处理工单的紧急程度
     */
    @TableField(value = "priority")
    private String priority;
    /**
     * 创建时间
     */
    @TableField(value = "created_at")
    private Date createdAt;
    /**
     * 创建人ID，关联到用户表的主键
     */
    @TableField(value = "created_by")
    private Long createdBy;
    /**
     * 更新时间
     */
    @TableField(value = "updated_at")
    private Date updatedAt;
    /**
     * 更新人ID，关联到用户表的主键
     */
    @TableField(value = "updated_by")
    private Long updatedBy;
}